Add Azure Monitor Workspace metrics provider - #1954
Conversation
|
This change is ready for review. |
devigned
left a comment
There was a problem hiding this comment.
From an Azure Golang SDK and auth perspective, token construction and usage lgtm.
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1954 +/- ##
==========================================
+ Coverage 29.78% 30.35% +0.57%
==========================================
Files 288 289 +1
Lines 18591 18728 +137
==========================================
+ Hits 5537 5685 +148
+ Misses 12325 12302 -23
- Partials 729 741 +12 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
aryan9600
left a comment
There was a problem hiding this comment.
looks good apart from a couple of nits
Add an `azuremonitor` metric template provider that queries the managed Prometheus endpoint of an Azure Monitor Workspace, removing the need to front the workspace with an aad-auth-proxy sidecar. The provider embeds the Prometheus provider and only takes care of authentication. It resolves a Microsoft Entra ID token before each query and hands it to the Prometheus provider as a bearer token, so query handling, headers and error reporting stay unchanged. The identity is taken from the keys present in the referenced secret. A clientId and tenantId pair selects a workload identity, adding a clientSecret selects a service principal, and an absent secret falls back to the workload identity of the Flagger pod. The Azure cloud and the token audience are derived from the workspace host name, so no new provider fields or controller flags are needed. The address is required to be an HTTPS Azure Monitor Workspace query endpoint and insecureSkipVerify is rejected, so that the token is only ever sent to a verified workspace host. Signed-off-by: Chris Curwick <chriscur@microsoft.com>
f9d5b71 to
3bacc1f
Compare
Add an
azuremonitormetric template provider that queries the managed Prometheus endpoint of an Azure Monitor Workspace, removing the need to front the workspace with an aad-auth-proxy sidecar.The provider embeds the Prometheus provider and only takes care of authentication. It resolves a Microsoft Entra ID token before each query and hands it to the Prometheus provider as a bearer token, so query handling, headers and error reporting stay unchanged.
The identity is taken from the values present in the referenced secret. A
clientIdandtenantIdpair selects a workload identity, adding aclientSecretselects a service principal, and an absent secret falls back to the workload identity of the Flagger pod. The Azure cloud and the token audience are derived from the workspace host name, so no new provider fields or controller flags are needed.The address is required to be an HTTPS Azure Monitor Workspace query endpoint and insecureSkipVerify is rejected, so that the token is only ever sent to a verified workspace host.